import axios from 'axios'
import Vue from 'vue'
import router from './router'
const http = axios.create({
    //在客户端一般没有process这个变量,但用webpack打包用vue cli之后就会生成
    //process.env表示环境变量,有VUE_APP_API_URL这个变量,它才是我们真正的接口地址
    //这一步:把写死的url改成动态的url,可根据域名访问
    baseURL: process.env.VUE_APP_API_URL || '/admin/api',
    //baseURL: 'http://localhost:3000/admin/api'
})

//给所有接口请求添加请求头,把localstorage的数据提取出来
http.interceptors.request.use(
    config => {
        //Authorization授权  'Bearer':标准,必加
        if (localStorage.token) {
            config.headers.Authorization = 'Bearer ' + (localStorage.token || '')
        }
        return config
    },
    error => {
        return Promise.reject(error)
    }
)



//响应拦截器,通用处理
http.interceptors.response.use(res => {
    return res
}, err => {
    if (err.response.data.message) {
        Vue.prototype.$message({
            type: 'error',
            message: err.response.data.message
        })
        if (err.response.status === 401) {
            router.push('/login')
        }
    }
    return Promise.reject(err)
})

export default http